Optimizing Loops in Database Programming Languages
نویسندگان
چکیده
Database programming languages like O 2 , E, and O++ include the ability to iterate through a set. Nested iterators can be used to express joins. We describe compile-time optimizations of such programming constructs that are similar to relational transformations like join reordering. Ensuring that the program’s semantics are preserved during transformation requires paying careful attention to the flow of values through the program. This paper presents conditions under which such transformations can be applied and analyzes the I/O performance of several different classes of program fragments before and after applying transformations. The analysis shows that the transformations can significantly reduce the number of I/Os performed, even when both the initial and transformed programs use the same join method.
منابع مشابه
Optimizing and Parallelizing Loops in Object-Oriented Database Programming Languages
Database programming languages like O2, E, and O++ include the ability to iterate through a set. Nested itera-tors can be used to express joins. Without program analysis, such joins must be evaluated using a tuple-at-a-timenested-loops join algorithm, because otherwise program semantics may be violated. Ensuring that the program’ssemantics are preserved during transformation require...
متن کاملDatabase-Aware Program Optimization via Static Analysis
Recent years have seen growing interest in bringing together independently developed techniques in the areas of optimizing compilers and relational query optimization, to improve performance of database applications. These approaches cut across the boundaries of general purpose programming languages and SQL, thereby exploiting many optimization opportunities that lie hidden both from the databa...
متن کاملIncrementalization: From Clarity to Efficiency
Incrementalization is at the core of a systematic program design method, especially for the design of algorithms and data structures. It takes a function and an input change operation and yields an incremental function that computes each new output by using the old output and additional values. It is the analogue of differentiation in continuous domains. This article gives an overview of a syst...
متن کاملRelational Databases Query Optimization using Hybrid Evolutionary Algorithm
Optimizing the database queries is one of hard research problems. Exhaustive search techniques like dynamic programming is suitable for queries with a few relations, but by increasing the number of relations in query, much use of memory and processing is needed, and the use of these methods is not suitable, so we have to use random and evolutionary methods. The use of evolutionary methods, beca...
متن کاملThe Convergence of Query and Object-Oriented Languages
The area of custom database applications is a large and rapidly growing domain, as evidenced by the appearance of tools for developing web front-ends to databases (e.g. Microsoft Visual InterDev), the large number of commercial programming environments now providing \database wizards" (e.g. Symantec Visual Caf e, Microsoft Visual C++) and the emergence of database interconnectivity standards (e...
متن کامل